# 创建类

class Person:
    def __init__(self, name):
        self.name = name

    def print_name(self):
        print(F"Person: {self.name}")


# 子类继承父类所有的属性和放荡发
class Student(Person):
    # init函数相当于java中的构造函数
    # self相当于java中的this
    def __init__(self, id: int, name, age, sex="男", clazz="文科一班"):
        # 定义一个成员变量，并且赋值

        # 调用父类的初始化函数
        super().__init__(name)

        # 属性私有化
        self.__id = id
        self.age = age
        self.sex = sex
        self.clazz = clazz

    # 普通方法
    def print(self):
        print(f"{self.__id}\t{self.name}\t{self.age}\t{self.sex}\t{self.clazz}")

    # 重写父类方法
    def print_name(self):
        print(F"Student: {self.name}")


# 创建类的对象
zs = Student(111, "张三", 23, clazz="文科二班")
# 调用对象的方法
zs.print()
# 获取对象的属性
print(zs.name)
# 修改属性
zs.name = "张三1"
zs.print()
zs.print_name()
